/**
 * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
 */
package com.jeeplus.modules.goodsstore.service;

import java.util.List;

import com.jeeplus.common.utils.CacheUtils;
import com.jeeplus.common.utils.StringUtils;
import com.jeeplus.modules.goodsspecs.entity.GoodsSpec;
import com.jeeplus.modules.goodsspecs.service.GoodsSpecService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.jeeplus.core.persistence.Page;
import com.jeeplus.core.service.CrudService;
import com.jeeplus.modules.goodsstore.entity.GoodsStore;
import com.jeeplus.modules.goodsstore.mapper.GoodsStoreMapper;

/**
 * 商城商品Service
 * @author lxj
 * @version 2020-11-09
 */
@Service
@Transactional(readOnly = true)
public class GoodsStoreService extends CrudService<GoodsStoreMapper, GoodsStore> {
	@Autowired
	private GoodsSpecService goodsSpecService;

	public GoodsStore get(String id) {
		return super.get(id);
	}
	
	public List<GoodsStore> findList(GoodsStore goodsStore) {
		return super.findList(goodsStore);
	}
	
	public Page<GoodsStore> findPage(Page<GoodsStore> page, GoodsStore goodsStore) {
		return super.findPage(page, goodsStore);
	}
	
	@Transactional(readOnly = false)
	public void save(GoodsStore goodsStore) {
		if (goodsStore.getIntegral() == null){
			goodsStore.setIntegral(0.00);
		}
		if (goodsStore.getPrice() == null){
			goodsStore.setPrice(0.00);
		}
		if (goodsStore.getBoughtPerson() == null){
			goodsStore.setBoughtPerson(0);
		}
//		if ("2".equals(goodsStore.getGoodsStatus())){
//			goodsSpecService.offShelf(goodsStore);
//		}
		super.save(goodsStore);
		CacheUtils.remove("goodsStoreList");
		GoodsStore goodsStore1=new GoodsStore();
		goodsStore1.setGoodsStatus("1");
		List<GoodsStore> list = findList(goodsStore1);
		CacheUtils.put("goodsStoreList",list);

		CacheUtils.remove(goodsStore.getId());
		CacheUtils.put(goodsStore.getId(),goodsStore);
	}
	
	@Transactional(readOnly = false)
	public void delete(GoodsStore goodsStore) {
		super.delete(goodsStore);
	}

	public Page<GoodsStore> findNormalPage(Page<GoodsStore> goodsStorePage, GoodsStore goodsStore) {
		dataRuleFilter(goodsStore);
		goodsStore.setPage(goodsStorePage);
		goodsStorePage.setList(mapper.findNormalList(goodsStore));
		return goodsStorePage;
	}

	/**
	 * 查询首页时令商品列表
	 * @return
	 */
	public List<GoodsStore> findSeasonalList() {
		return mapper.findSeasonalList();
	}

	/**
	 * 查询补货列表，排除时令商品
	 * @param goodsStore
	 * @return
	 */
	public List<GoodsStore> findListForRep(GoodsStore goodsStore) {
		return mapper.findListForRep(goodsStore);
	}
}